package com.yylc.cscore.service;

import com.yylc.cscore.bean.TaskBean;
import com.yylc.cscore.bean.TaskLabelBean;
import com.yylc.cscore.bean.base.PageBean;
import com.yylc.cscore.bean.query.ServiceTaskQueryBean;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

/**
 * @author xiangnan
 * date 2018/5/8
 */
public interface TaskService {

    /**
     * 根据客服ID查询该客服所属的所有的任务列表
     *
     * 任务列表排序规则：
     * // 1. 同一个用户的任务排列在一起
     * // 2. 按照日期排列，时间较早的在前
     */
    PageBean<TaskBean> serviceTaskQuery(ServiceTaskQueryBean queryBean);

    /**
     * 根据客户ID查询其所有的任务
     */
    List<TaskBean> serviceTaskQueryByUserId(String userId);

    /**
     * 分页查询待分配任务列表
     */
    PageBean<TaskBean> getWaitAllotList(int allotStatus, String userType, String taskCode, int current, int pageSize);

    int updateTask(TaskBean bean);

    /**
     * 查询任务标签列表
     */
    List<TaskLabelBean> getTaskLabelList(String taskCode, String labelName);

    /**
     * 查询用户标定列表
     */
    List<String> getUserLabelList();

    List<String> getUserLabel(String userId);

    int updateUserLabel(String label, String userId);


    // --------------------------------------------
    // 任务的业务类型操作
    // --------------------------------------------

    Object getCategoryList(String parentId);

    // ----------------------------------------------
    // 客服申请任务回收操作
    // ----------------------------------------------

    Object recycleCustomerTask(String customerId) throws Exception;

    // ----------------------------------------------
    // 注册渠道、下载渠道
    // ----------------------------------------------

    List<List<String>> getChannelList(String serviceId);

}
